using org.apache.solr.SolrSharp.Configuration;
using org.apache.solr.SolrSharp.Query;
using org.apache.solr.SolrSharp.Query.Highlights;

namespace SolrSharp.Adapters {
	public interface ISolrQueryBuilder {
		SolrQueryBuilder InnerQueryBuilder { get; }
		void AddFacet(Facet oFacet);
		void AddSearchParameter(string parameter, string value);
		void AddSearchParameter(string parameter, string value, bool overwrite);
		void AddSort(Sort oSort);
		void AddHighlightParameterCollection(HighlightParameterCollection highlightParameterCollection);
		HighlightParameterCollection GetHighlightParameterCollection();

		SolrSearcher SolrSearcher { get; }

		int Page { get; set; }

		int Rows { get; set; }

		Facet[] Facets { get; }

		Query Query { get; set; }

		Sort[] Sorts { get; }

		bool IsHighlighted { get; }

		bool IsDebugEnabled { get; set; }

		Query ExplainOtherQuery { get; set; }

		string QueryUrl { get; }
	}
}